* support doc creation in qmake.
pass parameters to tools/mkcapabilites instead of
using text replacement in configure.
text replacement in xmldoc/makedoc was unnecessary, directory
creation is handled in the recipee.
there is some foolishness in GPSBabel.pro to allow overriding of
WEB and DOCVERSION on the command line of make. If those values
are known when running qmake it could be slightly simpler.
* remove dependency on makedoc.in.
* improve fop comments.
* further update fop comments
QT -= gui
TARGET = gpsbabel
+VERSION = 1.7.0
CONFIG += console
CONFIG -= app_bundle
cppcheck.commands = cppcheck --enable=all --force --config-exclude=zlib --config-exclude=shapelib $(INCPATH) $$ALL_FMTS $$FILTERS $$SUPPORT $$JEEPS
QMAKE_EXTRA_TARGETS += cppcheck
-gpsbabel.pdf.depends = FORCE
-gpsbabel.pdf.commands += perl xmldoc/makedoc &&
+!defined(WEB, var) {
+ WEB = ../babelweb
+}
+!defined(DOCVERSION, var) {
+ DOCVERSION=$${VERSION}
+}
+
+index.html.depends = gpsbabel FORCE
+index.html.commands += web=\$\${WEB:-$${WEB}} &&
+index.html.commands += docversion=\$\${DOCVERSION:-$${DOCVERSION}} &&
+index.html.commands += mkdir -p \$\${web}/htmldoc-\$\${docversion} &&
+index.html.commands += perl xmldoc/makedoc &&
+index.html.commands += xmlwf xmldoc/readme.xml && #check for well-formedness
+index.html.commands += xmllint --noout --valid xmldoc/readme.xml && #validate
+index.html.commands += xsltproc \
+ --stringparam base.dir "\$\${web}/htmldoc-\$\${docversion}/" \
+ --stringparam root.filename "index" \
+ xmldoc/babelmain.xsl \
+ xmldoc/readme.xml &&
+index.html.commands += tools/fixdoc \$\${web}/htmldoc-\$\${docversion} "GPSBabel \$\${docversion}:" &&
+index.html.commands += tools/mkcapabilities \$\${web} \$\${web}/htmldoc-\$\${docversion}
+QMAKE_EXTRA_TARGETS += index.html
+
+#
+# The gpsbabel.pdf target depends on additional tools.
+# On macOS you can 'brew install fop' to get fop and the hyphenation package.
+# On Debian/Ubuntu you can 'apt-get install fop' to get fop and the hyphenation package.
+# 'fop' must be obtained from your distribution or http://xmlgraphics.apache.org/fop/
+# 0.92beta seems to work OK, BUT.
+# * If you have a package called 'docbook-xml-website' it's reported
+# to prevent the build from working. Remove it. (Suse)
+# * Sun Java seems to be required. GCJ 1.4.2 doesn't work. You can
+# force Sun Java to be used by creating ~/.foprc with 'rpm_mode=' (Fedora)
+# Get it from http://www.java.com
+# The Hyphenation package must be obtained from your distribution or
+# the project site at http://offo.sourceforge.net/ - be sure to get the
+# version that corresponds to the version of FOP that you used above.
+#
+#
+# The docbook XSL must be 1.71.1 or higher.
+# * Remember to update /etc/xml/catalogs if you manually update this.
+#
+
+gpsbabel.html.depends = gpsbabel FORCE
+gpsbabel.html.commands += perl xmldoc/makedoc &&
+gpsbabel.html.commands += xsltproc \
+ --output gpsbabel.html \
+ --stringparam toc.section.depth "1" \
+ --stringparam html.cleanup "1" \
+ --stringparam make.clean.html "1" \
+ --stringparam html.valid.html "1" \
+ --stringparam html.stylesheet \
+ "https://www.gpsbabel.org/style3.css" \
+ http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl \
+ xmldoc/readme.xml
+QMAKE_EXTRA_TARGETS += gpsbabel.html
+
+gpsbabel.pdf.depends = gpsbabel FORCE
+gpsbabel.pdf.commands += web=\$\${WEB:-$${WEB}} &&
+gpsbabel.pdf.commands += docversion=\$\${DOCVERSION:-$${DOCVERSION}} &&
+gpsbabel.pdf.commands += perl xmldoc/makedoc &&
gpsbabel.pdf.commands += xmlwf xmldoc/readme.xml && #check for well-formedness
gpsbabel.pdf.commands += xmllint --noout --valid xmldoc/readme.xml && #validate
gpsbabel.pdf.commands += xsltproc -o gpsbabel.fo xmldoc/babelpdf.xsl xmldoc/readme.xml &&
-gpsbabel.pdf.commands += HOME=. fop -q -fo gpsbabel.fo -pdf gpsbabel.pdf
-#gpsbabel.pdf.commands += cp gpsbabel.pdf $(WEB)/htmldoc-$(DOCVERSION)/gpsbabel-$(DOCVERSION).pdf
+gpsbabel.pdf.commands += HOME=. fop -q -fo gpsbabel.fo -pdf gpsbabel.pdf &&
+gpsbabel.pdf.commands += mkdir -p \$\${web}/htmldoc-\$\${docversion} &&
+gpsbabel.pdf.commands += cp gpsbabel.pdf \$\${web}/htmldoc-\$\${docversion}/gpsbabel-\$\${docversion}.pdf
QMAKE_EXTRA_TARGETS += gpsbabel.pdf
gpsbabel-debug: $(OBJS) @USB_DEPS@
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) @LIBS@ $(QT_LIBS) @USB_LIBS@ $(OUTPUT_SWITCH)$@
-Makefile gbversion.h: Makefile.in config.status xmldoc/makedoc.in \
+Makefile gbversion.h: Makefile.in config.status \
gbversion.h.in gui/setup.iss.in
CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
echo ' $$(srcdir)/mkstyle.sh > internal_styles.cc || (rm -f internal_styles.cc ; exit 1)' >> /tmp/dep
echo Edit Makefile.in and bring in /tmp/dep
-$(WEB)/htmldoc-$(DOCVERSION)/index.html: FORCE
+$(WEB)/htmldoc-$(DOCVERSION)/index.html: gpsbabel FORCE
mkdir -p $(WEB)/htmldoc-$(DOCVERSION)
perl xmldoc/makedoc
xmlwf xmldoc/readme.xml #check for well-formedness
xmldoc/babelmain.xsl \
xmldoc/readme.xml
tools/fixdoc $(WEB)/htmldoc-$(DOCVERSION) "GPSBabel $(DOCVERSION):"
- tools/mkcapabilities
+ tools/mkcapabilities $(WEB) $(WEB)/htmldoc-$(DOCVERSION)
#
# The .fo and PDF versions depend on additional tools.
# The docbook XSL must be 1.71.1 or higher.
# * Remember to update /etc/xml/catalogs if you manually update this.
#
-gpsbabel.fo: FORCE
+gpsbabel.fo: gpsbabel FORCE
perl xmldoc/makedoc
xmlwf xmldoc/readme.xml #check for well-formedness
xmllint --noout --valid xmldoc/readme.xml #validate
gpsbabel.pdf: gpsbabel.fo
HOME=. fop -q -fo gpsbabel.fo -pdf gpsbabel.pdf
+ mkdir -p $(WEB)/htmldoc-$(DOCVERSION)
cp gpsbabel.pdf $(WEB)/htmldoc-$(DOCVERSION)/gpsbabel-$(DOCVERSION).pdf
-gpsbabel.html: FORCE # gpsbabel
- # perl xmldoc/makedoc
+gpsbabel.html: gpsbabel FORCE
+ perl xmldoc/makedoc
xsltproc \
--output $@ \
--stringparam toc.section.depth "1" \
as_dir=testo.d; as_fn_mkdir_p
as_dir=mac/libusb; as_fn_mkdir_p
-ac_config_files="$ac_config_files Makefile gbversion.h gui/setup.iss xmldoc/makedoc"
-
-ac_config_files="$ac_config_files tools/mkcapabilities"
+ac_config_files="$ac_config_files Makefile gbversion.h gui/setup.iss"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"gbversion.h") CONFIG_FILES="$CONFIG_FILES gbversion.h" ;;
"gui/setup.iss") CONFIG_FILES="$CONFIG_FILES gui/setup.iss" ;;
- "xmldoc/makedoc") CONFIG_FILES="$CONFIG_FILES xmldoc/makedoc" ;;
- "tools/mkcapabilities") CONFIG_FILES="$CONFIG_FILES tools/mkcapabilities" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
esac
-
- case $ac_file$ac_mode in
- "tools/mkcapabilities":F) chmod +x tools/mkcapabilities ;;
-
- esac
done # for ac_tag
AS_MKDIR_P([testo.d])
AS_MKDIR_P([mac/libusb])
-AC_CONFIG_FILES([Makefile gbversion.h gui/setup.iss xmldoc/makedoc])
-AC_CONFIG_FILES([tools/mkcapabilities], [chmod +x tools/mkcapabilities])
+AC_CONFIG_FILES([Makefile gbversion.h gui/setup.iss])
AC_OUTPUT
--- /dev/null
+#!/bin/sh
+#
+capabilitiesdir=$1
+htmldocdir=$2
+
+./gpsbabel -^2 | sed 's/\&/\&/' | awk -F'\t' '
+function getcap(type, cap, sname, lname) {
+ if (type == "internal") return
+ print "<tr>"
+ print "<td class=\"fmtline\">" lname "<br />"
+
+ print "<a href=\"htmldoc-development/fmt_" sname ".html\">" sname "</a></td>"
+
+ for (i = 1; i <= 6; i++) {
+ c = substr(cap, i, 1)
+ printf "<td class=\"cap\">"
+ if (c != ("-")) printf "yes"
+ printf "</td>\n"
+ }
+ print "</tr>"
+}
+
+getcap($1, $2, $3, $5)
+' > ${capabilitiesdir}/capabilities.inc
+
+FMTS=`./gpsbabel -^2 | grep -v '^internal' | sed 's/\&/\&/' | awk -F'\t' '{print $3}'`
+for f in $FMTS
+do
+ [ ! -f ${htmldocdir}/fmt_${f}.html ] && echo Missing doc for $f
+done
+
+exit 0
+++ /dev/null
-#
-# mkcapabilities.in is used to create mkcapabilities.
-#
-./gpsbabel -^2 | sed 's/\&/\&/' | awk -F'\t' '
-function getcap(type, cap, sname, lname) {
- if (type == "internal") return
- print "<tr>"
- print "<td class=\"fmtline\">" lname "<br />"
-
- print "<a href=\"htmldoc-development/fmt_" sname ".html\">" sname "</a></td>"
-
- for (i = 1; i <= 6; i++) {
- c = substr(cap, i, 1)
- printf "<td class=\"cap\">"
- if (c != ("-")) printf "yes"
- printf "</td>\n"
- }
- print "</tr>"
-}
-
-getcap($1, $2, $3, $5)
-' > @DOCDIR@capabilities.inc > @DOCDIR@capabilities.inc
-
-FMTS=`./gpsbabel -^2 | grep -v '^internal' | sed 's/\&/\&/' | awk -F'\t' '{print $3}'`
-for f in $FMTS
-do
- [ ! -f @DOCDIR@/htmldoc-@DOCVERSION@/fmt_${f}.html ] && echo Missing doc for $f
-done
-
-exit 0
--- /dev/null
+#!/usr/bin/perl
+
+#
+# makedoc.in is used to generate makedoc. Editing makedoc is a bad idea.
+#
+
+@options;
+
+sub expandrw {
+ my $read = shift;
+ my $write = shift;
+ my $type = shift;
+
+ my $res = "";
+ if ( ($read eq 'r') || ($write eq 'w')) {
+ $res .= " <listitem>\n <para role=\"fmtcapsitem\">\n ";
+ if ( ($read eq 'r') && ($write eq 'w')) {
+ $res .= "read and write $type";
+ }
+ elsif ( $read eq 'r' ) {
+ $res .= "read $type";
+ }
+ elsif ( $write eq 'w' ) {
+ $res .= "write $type";
+ }
+ $res .= "\n </para>\n </listitem>\n";
+ }
+ $res;
+}
+
+sub expandoptions {
+ my $opts = shift;
+ my $res = " <para role=\"fmtcapshdr\">\n This format can...\n <itemizedlist>\n";
+
+ $res .= expandrw( substr($opts,0,1), substr($opts,1,1), 'waypoints' );
+ $res .= expandrw( substr($opts,2,1), substr($opts,3,1), 'tracks' );
+ $res .= expandrw( substr($opts,4,1), substr($opts,5,1), 'routes' );
+
+ $res .= " </itemizedlist></para>\n";
+
+ $res;
+}
+
+sub expandsuboptions {
+ my $f = shift;
+ my $res;
+ $olist = $options{$f};
+
+ # If no options, don't clutter things.
+ if ($olist eq "") { return; }
+
+ # Comma separate the human-readable variation.
+ $olist =~ s/> </>, </g;
+
+ $res .= "<para>This format has the following options: ";
+ $res .= $olist;
+ $res .= ".</para>";
+
+ $res;
+}
+
+
+sub include {
+ my $name=shift;
+ my $dir2=shift;
+
+ $name2 = $name;
+ $name2 =~ s/-/_/g;
+ $d2 = $dir2;
+ $d2 =~ s:/.*::;
+ $name2 = $d2.'_'.$name2;
+ print PARTS qq(<!ENTITY inc_$name2 SYSTEM "../$dir2/$name.xml">\n);
+ print FILE "\&inc_$name2;\n";
+ if (! -e "$dir/$dir2/$name.xml") {
+ open TMP, ">$dir/$dir2/$name.xml";
+ print TMP "\n";
+ close TMP;
+ }
+}
+
+sub includef {
+ my $name=shift;
+
+ $name2 = $name;
+ $name2 =~ s/-/_/g;
+ print PARTS qq(<!ENTITY inc_$name2 SYSTEM "$name.xml">\n);
+ print FORMATS "\&inc_$name2;\n";
+}
+
+
+
+$dir = $0;
+$dir =~ s:/.*$::;
+
+@agdir=`mkdir -p $dir/autogen`;
+open PARTS, ">$dir/autogen/_parts.xml";
+print PARTS qq(<!-- This document is automatically generated. -->\n);
+print PARTS qq(<!ENTITY formats SYSTEM "_formats.xml">\n);
+print PARTS qq(<!ENTITY filters SYSTEM "_filters.xml">\n);
+
+open FORMATS, ">$dir/autogen/_formats.xml";
+print FORMATS qq(<!-- This document is automatically generated. -->\n);
+
+@formats = `./gpsbabel -^3`;
+
+$going = 0;
+$dooptions = 0;
+
+# Prescan the argument list for options.
+
+for (@formats) {
+ chomp;
+ s/\&/\&/g;
+ s/</\</g;
+ s/>/\>/g;
+ @line = split "\t";
+
+ if (($line[0] eq 'file') || ($line[0] eq 'serial')) {
+ $fmt = $line[2];
+ # Pennance for earlier sins. Rename magellan -> magellan1 here.
+ if ($line[4] eq "Magellan serial protocol") {
+ $fmt = "magellan1";
+ }
+ $skipping = 0;
+ }
+ if ( $line[0] eq 'internal' || $line[5] eq 'xcsv') {
+ $skipping = 1;
+ }
+ if ($line[0] eq 'option' && $skipping == 0) {
+ $optname = $line[2];
+
+ $options{$fmt} .= "<link linkend=\"fmt_${fmt}_o_${optname}\">$optname</link> ";
+ }
+}
+
+
+for (@formats) {
+ chomp;
+ s/\&/\&/g;
+ s/</\</g;
+ s/>/\>/g;
+ @line = split "\t";
+
+ if ( $line[0] eq 'internal') {
+ if ($going) {
+ print FILE "</section>\n";
+ close FILE;
+ $going = 0;
+ }
+ if ( $line[5] eq 'xcsv' ) {
+ $line[0] = 'file';
+ }
+ }
+
+ if (($line[0] eq 'file') || ($line[0] eq 'serial')) {
+ if ($going) {
+ print FILE "</section>\n";
+ close FILE;
+ }
+ $id = $line[2];
+ if ( $fmts{$id} ) {
+ $id .= $fmts{$id}++;
+ }
+ else {
+ $fmts{$id} = 1;
+ }
+ includef( 'fmt_'.$id );
+ open FILE, ">$dir/autogen/fmt_$id.xml";
+ print FILE <<END;
+<!-- This document is automatically generated. -->
+<section id="fmt_$id">
+ <title>$line[4] ($line[2])</title>
+END
+ print FILE expandoptions($line[1]);
+ print FILE expandsuboptions($id);
+ $going = 1;
+ $dooptions = 1;
+ if ( defined($line[5]) && ($line[5] ne $line[2]) ) {
+ print FILE <<END;
+<para>
+This format is derived from the <link linkend="fmt_$line[5]">$line[5]</link>
+format, so it has all of the same options as that format.
+</para>
+END
+ if ($line[5] eq 'xcsv' ) {
+ $dooptions=0;
+ }
+ }
+ include($id,"formats");
+ }
+ elsif ($going && $dooptions && ($line[0] eq 'option')) {
+ $nid = 'fmt_'.$id.'_o_'.$line[2];
+ print FILE <<END;
+ <section id="$nid">
+ <title><option>$line[2]</option> option</title>
+ <para>
+ $line[3].
+ </para>
+END
+ include($id.'-'.$line[2],"formats/options");
+ print FILE <<END;
+ </section>
+END
+ }
+}
+
+if ($going) {
+ print FILE "</section>\n";
+ close FILE;
+ $going = 0;
+}
+
+
+open FORMATS, ">$dir/autogen/_filters.xml";
+print FORMATS qq(<!-- This document is automatically generated. -->\n);
+
+@filters = `./gpsbabel -%1`;
+
+$going = 0;
+
+for (@filters) {
+ chomp;
+ s/\&/\&/g;
+ s/</\</g;
+ s/>/\>/g;
+ @line = split "\t";
+
+ if ($going && ($line[0] eq 'option')) {
+ print FILE <<END;
+ <section id="fmt_$line[1]_o_$line[2]">
+ <title>$line[2] option</title>
+ <para>
+ $line[3].
+ </para>
+END
+ include($line[1].'-'.$line[2],"filters/options");
+ print FILE <<END;
+ </section>
+END
+ }
+ else {
+ if ($going) {
+ print FILE "</section>\n";
+ close FILE;
+ }
+ includef( 'filter_'.$line[0] );
+ open FILE, ">$dir/autogen/filter_$line[0].xml";
+ print FILE <<END;
+<!-- This document is automatically generated. -->
+<section id="filter_$line[0]">
+ <title>$line[1] ($line[0])</title>
+END
+ include($line[0],"filters");
+ $going = $line[0];
+ }
+}
+
+
+if ($going) {
+ print FILE "</section>\n";
+ close FILE;
+ $going = 0;
+}
+close FORMATS;
+close PARTS;
+++ /dev/null
-#!/usr/bin/perl
-
-#
-# makedoc.in is used to generate makedoc. Editing makedoc is a bad idea.
-#
-
-@options;
-
-sub expandrw {
- my $read = shift;
- my $write = shift;
- my $type = shift;
-
- my $res = "";
- if ( ($read eq 'r') || ($write eq 'w')) {
- $res .= " <listitem>\n <para role=\"fmtcapsitem\">\n ";
- if ( ($read eq 'r') && ($write eq 'w')) {
- $res .= "read and write $type";
- }
- elsif ( $read eq 'r' ) {
- $res .= "read $type";
- }
- elsif ( $write eq 'w' ) {
- $res .= "write $type";
- }
- $res .= "\n </para>\n </listitem>\n";
- }
- $res;
-}
-
-sub expandoptions {
- my $opts = shift;
- my $res = " <para role=\"fmtcapshdr\">\n This format can...\n <itemizedlist>\n";
-
- $res .= expandrw( substr($opts,0,1), substr($opts,1,1), 'waypoints' );
- $res .= expandrw( substr($opts,2,1), substr($opts,3,1), 'tracks' );
- $res .= expandrw( substr($opts,4,1), substr($opts,5,1), 'routes' );
-
- $res .= " </itemizedlist></para>\n";
-
- $res;
-}
-
-sub expandsuboptions {
- my $f = shift;
- my $res;
- $olist = $options{$f};
-
- # If no options, don't clutter things.
- if ($olist eq "") { return; }
-
- # Comma separate the human-readable variation.
- $olist =~ s/> </>, </g;
-
- $res .= "<para>This format has the following options: ";
- $res .= $olist;
- $res .= ".</para>";
-
- $res;
-}
-
-
-sub include {
- my $name=shift;
- my $dir2=shift;
-
- $name2 = $name;
- $name2 =~ s/-/_/g;
- $d2 = $dir2;
- $d2 =~ s:/.*::;
- $name2 = $d2.'_'.$name2;
- print PARTS qq(<!ENTITY inc_$name2 SYSTEM "../$dir2/$name.xml">\n);
- print FILE "\&inc_$name2;\n";
- if (! -e "$dir/$dir2/$name.xml") {
- open TMP, ">$dir/$dir2/$name.xml";
- print TMP "\n";
- close TMP;
- }
-}
-
-sub includef {
- my $name=shift;
-
- $name2 = $name;
- $name2 =~ s/-/_/g;
- print PARTS qq(<!ENTITY inc_$name2 SYSTEM "$name.xml">\n);
- print FORMATS "\&inc_$name2;\n";
-}
-
-
-
-@dir=`mkdir -p @DOCDIR@`;
-$dir = $0;
-$dir =~ s:/.*$::;
-
-@agdir=`mkdir -p $dir/autogen`;
-open PARTS, ">$dir/autogen/_parts.xml";
-print PARTS qq(<!-- This document is automatically generated. -->\n);
-print PARTS qq(<!ENTITY formats SYSTEM "_formats.xml">\n);
-print PARTS qq(<!ENTITY filters SYSTEM "_filters.xml">\n);
-
-open FORMATS, ">$dir/autogen/_formats.xml";
-print FORMATS qq(<!-- This document is automatically generated. -->\n);
-
-@formats = `./gpsbabel -^3`;
-
-$going = 0;
-$dooptions = 0;
-
-# Prescan the argument list for options.
-
-for (@formats) {
- chomp;
- s/\&/\&/g;
- s/</\</g;
- s/>/\>/g;
- @line = split "\t";
-
- if (($line[0] eq 'file') || ($line[0] eq 'serial')) {
- $fmt = $line[2];
- # Pennance for earlier sins. Rename magellan -> magellan1 here.
- if ($line[4] eq "Magellan serial protocol") {
- $fmt = "magellan1";
- }
- $skipping = 0;
- }
- if ( $line[0] eq 'internal' || $line[5] eq 'xcsv') {
- $skipping = 1;
- }
- if ($line[0] eq 'option' && $skipping == 0) {
- $optname = $line[2];
-
- $options{$fmt} .= "<link linkend=\"fmt_${fmt}_o_${optname}\">$optname</link> ";
- }
-}
-
-
-for (@formats) {
- chomp;
- s/\&/\&/g;
- s/</\</g;
- s/>/\>/g;
- @line = split "\t";
-
- if ( $line[0] eq 'internal') {
- if ($going) {
- print FILE "</section>\n";
- close FILE;
- $going = 0;
- }
- if ( $line[5] eq 'xcsv' ) {
- $line[0] = 'file';
- }
- }
-
- if (($line[0] eq 'file') || ($line[0] eq 'serial')) {
- if ($going) {
- print FILE "</section>\n";
- close FILE;
- }
- $id = $line[2];
- if ( $fmts{$id} ) {
- $id .= $fmts{$id}++;
- }
- else {
- $fmts{$id} = 1;
- }
- includef( 'fmt_'.$id );
- open FILE, ">$dir/autogen/fmt_$id.xml";
- print FILE <<END;
-<!-- This document is automatically generated. -->
-<section id="fmt_$id">
- <title>$line[4] ($line[2])</title>
-END
- print FILE expandoptions($line[1]);
- print FILE expandsuboptions($id);
- $going = 1;
- $dooptions = 1;
- if ( defined($line[5]) && ($line[5] ne $line[2]) ) {
- print FILE <<END;
-<para>
-This format is derived from the <link linkend="fmt_$line[5]">$line[5]</link>
-format, so it has all of the same options as that format.
-</para>
-END
- if ($line[5] eq 'xcsv' ) {
- $dooptions=0;
- }
- }
- include($id,"formats");
- }
- elsif ($going && $dooptions && ($line[0] eq 'option')) {
- $nid = 'fmt_'.$id.'_o_'.$line[2];
- print FILE <<END;
- <section id="$nid">
- <title><option>$line[2]</option> option</title>
- <para>
- $line[3].
- </para>
-END
- include($id.'-'.$line[2],"formats/options");
- print FILE <<END;
- </section>
-END
- }
-}
-
-if ($going) {
- print FILE "</section>\n";
- close FILE;
- $going = 0;
-}
-
-
-open FORMATS, ">$dir/autogen/_filters.xml";
-print FORMATS qq(<!-- This document is automatically generated. -->\n);
-
-@filters = `./gpsbabel -%1`;
-
-$going = 0;
-
-for (@filters) {
- chomp;
- s/\&/\&/g;
- s/</\</g;
- s/>/\>/g;
- @line = split "\t";
-
- if ($going && ($line[0] eq 'option')) {
- print FILE <<END;
- <section id="fmt_$line[1]_o_$line[2]">
- <title>$line[2] option</title>
- <para>
- $line[3].
- </para>
-END
- include($line[1].'-'.$line[2],"filters/options");
- print FILE <<END;
- </section>
-END
- }
- else {
- if ($going) {
- print FILE "</section>\n";
- close FILE;
- }
- includef( 'filter_'.$line[0] );
- open FILE, ">$dir/autogen/filter_$line[0].xml";
- print FILE <<END;
-<!-- This document is automatically generated. -->
-<section id="filter_$line[0]">
- <title>$line[1] ($line[0])</title>
-END
- include($line[0],"filters");
- $going = $line[0];
- }
-}
-
-
-if ($going) {
- print FILE "</section>\n";
- close FILE;
- $going = 0;
-}
-close FORMATS;
-close PARTS;